Is there a way to find what changes took place in the beforeUpdate/afterUpdate lifecycle hook?

The afterUpdate hook will get both the data sent in the update request and the result which you could compare.

  afterUpdate: async (event) => {
    let dataSentInUpdateRequest = event.params.data;
    let resultOfUpdateOperation = event.result;
  },

Docs: Models | Strapi Documentation