format
convert TemporaryDatabase to an interface, refactor the PostgreSQL version into a separate class