1. A method for processing database queries, comprising: encrypting a database in a database system using two or more encryption schemes, with each data item in the database encrypted using at least one of the two or more encryption schemes; selecting for each data item specified in an input query from an application, one of the encryption schemes; transforming the input query to an encrypted query using the selected encryption scheme for each data item specified in the query; determining the input query requests a join between a stored first column initially encrypted with a first key and a stored second column encrypted with a second key different from the first key; providing a token to the database system for adjusting an encryption of the first stored column to an encryption with the second key to match an encryption of the stored second column, wherein subsequent join queries between the stored first column and the stored second column can be executed without re-adjusting encryption of the first or second stored columns; executing the encrypted query at the database system, without decrypting any of the encrypted data items to plaintext at the database system, to produce one or more encrypted results; decrypting the encrypted results using the selected decryption scheme for each data item in the encrypted results to generate decrypted results; and returning the decrypted results to the application.