I have come to believe that storing your data as the semantic events that happen rather than the state at a given point in time is the way to go. From what I've seen change data capture is the opposite process of trying to extract an event stream from the data changes.