Can SQLite3 run the sub-queries of a UNION ALL with any degree of concurrency? E.g., with its co-routines? That might help three union'ed scans of the same table go pretty fast, maybe not much slower than one scan. In which case this might compare quite well to diff(1).
Nico --