1. A method for evaluating a database, the method implemented by a computing device and comprising: receiving input information, the input information including: query information that describes a query for presenting to the database; condition information that describes a condition, wherein submitting the query to the database is desired to meet the condition; and database information that describes at least one characteristic of the database; generating output information based on the input information using a satisfiability modulo theories (SMT) approach, the output information including: table information that provides one or more tables for populating the database; parameter information that provides one or more parameter values to instantiate the query in an instance when the query includes one or more parameter variables; and result information that provides a predicted result that is predicted to occur upon submission of the query to the database; populating the database with the table information to provide a populated database; instantiating the query with the parameter information to provide an instantiated query; submitting the instantiated query to the populated database and receiving an evaluation result; and comparing the evaluation result with the condition information to provide an evaluation assessment, wherein the table information and the query information are provided such that, when the instantiated query is submitted to the populated database, the evaluation result agrees with the condition information; wherein said generating comprises: translating the query into a formula based on a background theory, wherein the formula is expressed within the background theory; preprocessing the formula to render the formula in a form suitable for processing by a SMT solver module; and processing the formula, after said preprocessing, using the SMT solver module to generate a model using the SMT approach.