Support for various database engines.
Split the previous implementation into Interface classes and PSQL implementation.