I would suggest to modify the core minimally so that it can be extended easily.
And for anyone who is too late already, below an example to upgrade a modified core from 2.0.2.0 to master: (otherwise I'd suggest forking opencart and using rebase!)
git clone https://github.com/opencart/opencart
cd opencart
git checkout 2.0.2.0 #insert tag with your current version. Mine was 2.0.2.0
cd upload
#Note: sed strips paths for 'upload/' (opencart)
git diff 2.0.2.0 master > ~/patch-to-newest-version.diff | sed "s/+++ b\/upload\//+++ b\//" | sed "s/--- a\/upload\//--- a\//"
#       I chose ^master^ but you'd better use a stable version.
cd to-your-modified-(opencart)core
patch -p1 < ~/patch-to-newest-version.diff
#..time to resolve the conflicts.. hopefully not much. Good luck.
(if anyone knows a better way to patch a modified core, please comment. Especially because it is not nice to keep working in a '/upload' folder... use a sparse checkout or s/t?