Whenever I try and open Scratch, it tries to load the files I previously had open. While I want to keep the behaviour, one of the files I opened was an SVG of several MBs. As a result, Scratch now hangs and eventually crashes every time I open it.
You can view your currently open files with
gsettings get org.pantheon.scratch.settings opened-files ['file:///home/lewis/image.svg']
You can clear your currently open files by setting the same key as an empty list.
gsettings set org.pantheon.scratch.settings opened-files 
This is only an alternative, Lewis answer is the accurate one.
To clear currently opened files:
Open scratch --> settings --> preferences --> Behavior --> Show Welcome Screen.
If you are not able to open scratch, open terminal and run:
gsettings set org.pantheon.scratch.settings show-at-start welcome
The problem here is because scratch stores previously opened files.
There you have two (may be more) possible workarounds.
What lewis suggested, removing previously opened files, which results scratch to open welcome screen (I mean default one), but retain "last-tabs" behavior.
What I have suggested, directly changing to welcome screen (Alternative), but "last-tabs" behavior will change. Since OP wants to have the "Show last open tabs" behavior, he can change once he open scratch.
In both the cases the previously opened files be ignored and scratch open with welcome screen.
In any case the point is opening scratch without crashing.
Just in case someone runs into this on Juno:
gsettings set io.elementary.code.settings opened-files-view1 ""