Diff the desired table definition against the existing table state. Returns added, modified, and removed columns.
Standard system columns (managed by CodeGen) are excluded from the diff.
Generate ALTER TABLE SQL for a SchemaDiff.
Removed columns are intentionally NOT emitted as DROP COLUMN (non-destructive design).
Instead they are surfaced as warning comments that the pipeline executor MUST detect
and report to the user — otherwise the user sees "success" while their requested drop
was silently skipped (the original A5 false-success bug).
If the user's intent contains ONLY column removals (no adds, no modifications), this method throws so the pipeline fails fast instead of running a no-op statement and reporting success.
Convenience: diff + generate ALTER TABLE in one call.
Computes schema diffs and generates ALTER TABLE migration SQL.