tomcat.deploy_war is an execution module, not a state module. In general, execution modules like tomcat.deploy_war are always named imperatively.
You cannot use execution modules in states directly; instead, they are intended to be used in ad-hoc Salt commands.
On the other hand state modules are intended to be used in states and are named declaratively (by the desired end state). In many cases, an execution module has a corresponding state module -- in your case tomcat.deploy_war and tomcat.war_deployed