Is this a full refresh each time or incremental (do you have to tell it the incremental columns or can it "tell"?)
Can you create audit timestamps in the target which track when rows were inserted or updated (or soft-deleted) in the target?
Can you take sources which contain "current state" table information and transform them into tables that have record start-effective/end-effective date (+ a current record indicator flag?) that support As-Was querying for a given primary key and/or which tracks soft deletes over time as an additional target table column?