1. A method implemented by a computing device for evaluating a database, comprising: receiving input information, including: query information that describes a query to be presented to the database; condition information that describes a desired condition to be met upon submitting the query to the database; and database information which 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 provide one or more tables for populating the database; parameter information that provides one more parameter values to instantiate the query, if 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, the table information and the query information being provided such that, when the instantiated query is submitted to the populated database, the evaluation result agrees with the condition information.