title: Versioned database engine that can SELECT from past DB state?
body: <p>I have a project idea where users should be able to query a database, change its content and schema, and have old reports still work regardless of DDL changes.</p>
  
  <p>Is there a database engine (e.g. sqlite) that can be queried from its current state, or, from any past point-in-time (including DDL changes)?</p>
  
  <p>Something where I can</p>
  
  <ol>
  <li>Insert data</li>
  <li>Tomorrow, modify table schemas</li>
  <li>Query data based on yesterday's data and schemas (possibly on a different DB connection)</li>
  </ol>
  
  <p>My expected DB size is probably small (only a few MB, definitely fits within RAM).</p>
  
  <p>I'm imagining something WAL that can query the active DB but materialize an older version for queries on-demand,</p>
  
  <ul>
  <li>AWS Aurora can rollback to a point-in-time, but that's a big deal</li>
  <li>I could backup the DB on every INSERT or ALTER statement, but that seems inefficient</li>
  <li>I could develop an point-in-time / append-only data store as a vfs backend for Sqlite</li>
  <li>...</li>
  </ul>