In EL7 (and possibly other platforms), Puppet chooses different service providers when just querying a service and when actually changing it. Example:
Notice that Puppet switches to the systemd provider when altering the service, but uses the RedHat provider when simply querying it. Note that logstash as a sysvinit service with no unit file. The systemd provider is used consistently on regular systemd services with unit files.