Right now each error, that might happen during deployment process is handled by different part of the code (e.g. cache rebuild error in one place, sql error in other place) and this non-unified error handling doesn't prevent further deployment script execution if at least 1 error happens.
I think on ANY error during deployment we need to throw an exception and basta. Then wrap whole DeploymentHelper invocation in throw/catch block to have unified error reporting as well.