I think we should probably move the execution code out of the DatabaseQuery implementations and into here, but interested in other opinions.