In general you can monitor anything - it's all a matter of the amount of time and effort you want to put into it.
You could satisfy your needs with the ntservices or processes probes if all you needed was "is it running..." answered.
You can use ntevl/logmon to watch log files for events
Some of those apps have URL interfaces - url_response or webservicemon might be appropriate.
For the databases, there's the jdbc_response probe. As long as there's a java database compliant library, you can probably us that.
When you step away from the "out of the box" monitoring, the first place to start looking is the logmon probe. In addition to looking at files, this probe can run a "command" and process the output. So there might not be a probe for Neo4j but if you can write something in shell script to issue the necessary tests and report to stdout messaging that you can then process with the logmon watchers.
Beyond that, you can always write your own probes or write something in LUA that executes on the nas that determines the health of what you are monitoring.
-Garin