Saving and managing multiple database "states"?
SQL Server provides various ways to maintain states of the table + you can design your own:


Change data capture : CDC is use to capture insert, update or delete operation on a table. But remember, it does not support computed columns.
Change tracking: This also capture DML statements like CDC but does not hold historical data. 
SCD Type 2: By creating your own historical data change table by using timestamp and mark the latest record as active.
Microsoft Sync Framework : You can use this if you want to have a replication of database. I used it when I had to do the sync between offline SQL Server to online. However, this may cost effort in implementation and also it will not provide you all the features you are looking for.


For future releases (i.e. SQL Server 2016 and above)


Temporal Tables: I did use that in my experiments on SQL Server 2016 CTP 2 and found it promising. In a way you can consider them as SCD type 2.


If I have to choose at your place than I would go for CDC.