What you need is a database with design in to preservation historical data. First you should ask the users to ensure the structure of the tables are the same from year 1 to year 2, ...
If majority of the tables have the same structures, then you can rely on one database to be utilized to keep the data for different years. You need to investigate if a table needs to preserve the data from year to year, (there might be tables that it is not the case, business users can answer this questions). If the data in a table needs to be preserved, you need to add two columns to the table, one showing the Effective From Date and the other showing the Effective To Date.
The PK of the table needs to be a surrogate key (which is an identity column). It is different from natural key. Then using these three columns you can implement history preservation on the table.
For example look at the balance of this account in a Balance table:
Create Table Balance
Id int not null Primary Key,
AccountId int not null,
Balance decimal(15,2) not null,
EffectiveFromDate Date not null,
EffectiveToDate Date not null
In this table you would have:
1, 100, 1890, 2009-01-01, 2009-12-30
2, 100, 25000, 2010-01-01, 2010-12-30
3, 100, 465, 2011-01-01, 2011-12-30
By querying the table above using the effective dates, you can find out what was the balance of the account for each year. You don't have to have separate database for each year :)
It is a vast area and topic, but you can have a look at the links below to start: