You mean besides DBI?
The different database engines are exactly that: different. They implement basic features, such as DATE and TIME in the SQL standard differently. See this article.
Furthermore, for better concurrency, many database engines require the use of a database specific programming language: PL/SQL (Oracle), SQL PL (IBM DB2), even MySQL has this ability as of version 5.0. While there's some similarities within these languages, they are highly incompatible.
So I would say what you are trying to do is very difficult.
Why is database independence so important?
Well, I'd say if you're going to abstract from SQL up, abstract the whole way to an OO-View where you don't use SQL itself anymore - but if you are determined to write such a module - which could be very useful indeed - I suggest to take a look at the SQLFairy (SQL::Translator) - they have done such a thing already - you could use SQL::Translator on-the-fly, or at least prey upon it to reuse their effort.
An intellectual is someone whose mind watches itself.
-- Albert Camus
Take a look at SQL::Statement and its friends and relations. No promises cos I've not used it myself, but at least the module names look like they might be right :-)