На практике — вы все равно столкнетесь со специфичными свойствами одной или другой бд, которые вам захочется / нужно будет применить. Каждый производитель бд все равно вносит какие-то различия в SQL синтаксис, иначе зачем клон существующего проекта? — Так что преследовать цель кросс-бд по моему субъективному мнению весьма утопично. Более разумным будет ознакомится со спецификой конкретной бд и понять для чего она, а не городить универсальных рюшек. Чем более универсальный инструмент тем сложнее его реализация и дальнейшая поддержка.