@Test
  public void schemaCreationIsRunWhenDatabaseDoesntExist() throws Exception {
    PreparedStatementWrapper prepareStatement =
        connection.prepareStatement("INSERT INTO testtable VALUES(1, 'test');");
    try {
      prepareStatement.execute();
    } finally {
      DatabaseUtil.close(prepareStatement);
    }

    QueryPreparedStatementWrapper prepareQueryStatement =
        connection.prepareQueryStatement("SELECT * FROM testtable");
    try {
      prepareQueryStatement.execute();
      assertThat(prepareQueryStatement.getResultSet().getInt(1), is(1));
    } finally {
      DatabaseUtil.close(prepareQueryStatement);
    }
  }
  @Test
  public void schemaCreationIsNotRunWhenDatabaseExists() throws Exception {
    db.shutdown();
    db.start();
    connection = db.getConnection();

    // Would throw an exception if the table didn't exist
    QueryPreparedStatementWrapper prepareQueryStatement =
        connection.prepareQueryStatement("SELECT * FROM testtable");
    try {
      prepareQueryStatement.execute();
    } finally {
      DatabaseUtil.close(prepareQueryStatement);
    }
  }
  @Test
  public void upgradeScriptsRunWhenDatabaseIsOlderVersion() throws Exception {
    db.shutdown();
    db = new FileDatabaseVersion2(file);
    db.start();
    connection = db.getConnection();

    // Would throw an exception if the table didn't exist
    QueryPreparedStatementWrapper prepareQueryStatement =
        connection.prepareQueryStatement("SELECT * FROM version2table");
    try {
      prepareQueryStatement.execute();
    } finally {
      DatabaseUtil.close(prepareQueryStatement);
    }
  }