New DryRun implementation: now produces SQL but skips connecting or running it