DROP INDEX using PostgreSQL requires schema name / Accepting JDBC escape sintax / Disabling variable substitution in Oracle databases

Currently, for PostgreSQL database, drop index generated queries didn't show schema, even though one was supplied. This was a source of error, because PostgreSQL couldn't find the index when it's under a schema.

That change add schema name, a period and index name for drop index statements, and only for PostgreSQL. The behavior stays the same as before if schema name is not supplied. 

That Pull Request, https://github.com/liquibase/liquibase/pull/4 , solved the problem, but it seems this bug reappear after some refactoring.

-----------------------------------------------------------------------------------------------------------------

JDBC supports escape sintax to improve portability. Suppose that the following query is inside "sql" tag:

UPDATE bizz.my_table
SET company_id = {fn concat('12345', fed_tax_number)}

It is a valid JDBC query. Therefore, when running the comand "update", Liquibase executes successfully, because that query will be passed through JDBC. Yet when using "updateSQL", JDBC will no longer be used, and that escaped function will be print out at destination file, causing errors.

So, RawSQLChange was modified to convert any SQL into its native representation. In this way, the final script can be executed without errors, even outside of JDBC.

--------------------------------------------------------------------------------------------------------

In Oracle, a query like:

INSERT INTO my_table(url) VALUES ('http://www.example.com?p1=foo&p2=bar');

could be interpreted incorrectly, as any word following amperstand will be recognized as a variable that should be prompted to the user.
Adding "SET DEFINE OFF" disable this nasty feature, treating amperstand as a common caracter, like any other.