One option is to use Snowflake Dynamic table that helps to track the history i.e change data capture.
To identify what has changed, you can create stream on top of the dynamic table or you can create SCD type 1 Dynamic table on top of SCD 2 dynamic table like explained in this article