1. A method to support evolutionary queries, comprising: retaining artifacts from previous query or workflow execution runs (materialized views); providing a gray-box model of a user defined function (UDF) to support search for rewrites of the UDF; automatically producing a rewrite that uses artifacts to reduce workflow execution time; and incrementally searching the space of rewrites to create (explode) and searching a minimum amount of a solution space to find an optimal rewrite.